% ************************************************************************ 
%     Module name   : Lynx Simulation - Param Init function                                                   
%                                                                          
%     Description   : This will initialise the param.                                                    
%                                                                          
%     $Header: /Lynx/SimulationFramework/RSP/IFS/IFSRun.m 2     15/10/08 16:08 Lwabeke $ 
%                                                                          
%    $Author: Lwabeke $	            
%                                                                         
%    $Revision: 2 $                
%                                                                         
% ************************************************************************
%     $History: IFSRun.m $ 
% 
%
% ************************************************************************
function [param] = Param_Init(time)

param.startTime = time;
param.endTime = 1000;

%% Define details of radar locations
param.num_radars = 2;
radar.location = zeros(2, 1);
param.radars(1:param.num_radars) = radar;
param.radars(1).location = [ 0 0];
param.radars(2).location = [ 0 40000];

param.radarSlewRate = pi/8;     % 4 seconds per 90 degrees

param.radarAngleResolution = deg2rad(1); 

%% Define details of scene under observation
param.world.area = [ 0 40000 0 40000 ];     % Format same as used by axis [XMIN XMAX YMIN YMAX]

param.world.Drag = [ 0.2 0 ; 0 0.8];
%param.world.clutterSpikes = ceil(1*param.endTime);
%param.world.clutterVelConvergeTime = 2;

param.numTargets = 10;

%% Define plotting behaviour
param.display.perTarget = 0;        % 0 - no plot, 1 - plot at each double view, 2 - same as 1, but longer pause
param.display.trackHistory = 199;   % Number of scans between update plotting, 0 to stop plotting

%% Define scheduling behaviour
param.schedule.max_priority = 7;
param.schedule.max_scans = 7;
param.schedule.algorithm = 'SG'; % 'IA' - Interval Algebra, 'GS' - GRASP, 'HA' - Heurisitic with ambiguities or 'HR' - Heuristic without ambiguities
param.schedule.max_iterations = 1;

%%
% param.radar.searchMaxAngle = 2*pi;
% 
% param.radarModes.searchMode.NCI.pd = 0.2 ;
% param.radarModes.searchMode.MTI.pd = [0.1 0] ;
% param.radarModes.searchMode.Stationary.pd = [-0.2 0.3] ;
% 
% param.radarModes.searchMode.numSearchSectors = 4;
% 
% param.radarModes.searchMode.NCI.usedTime = 0.5 / param.radarModes.searchMode.numSearchSectors;
% param.radarModes.searchMode.MTI.usedTime = 0.5 / param.radarModes.searchMode.numSearchSectors;
% param.radarModes.searchMode.Stationary.usedTime = 0.5 / param.radarModes.searchMode.numSearchSectors;
% 
% 
% param.radarModes.searchMode.rangeEstStd = 5;
% 
% 
% param.radarModes.TrackMode.hit.rangeEstStd = 3;
% 
% param.radarModes.TrackMode.miss.rangeEstStdFactor = 10000;
% 
% param.radarModes.trackMode.usedTime = 0.02 / param.radarModes.searchMode.numSearchSectors;
% 
% param.radarModes.Discard.rangeEstStdLimit = 20; 
% 
% 
% param.learn.search.learning_rate = 0.7;
% param.learn.search.inflation = 0.1;
% param.learn.search.explore = 0.3;
% param.learn.search.explore_reduction = 0.99;
% param.learn.search.num_states = 3^3 * param.radarModes.searchMode.numSearchSectors;
% param.learn.search.num_actions = 3 * param.radarModes.searchMode.numSearchSectors;


